#ifndef _cesium_pipeline_hpp_
#define _cesium_pipeline_hpp_

#include <set>
#include "cesium/stage.hpp"

namespace Cesium {

/** A pipeline of stages. This is essentially just a container
 *  for stages, presumably that are connected, which maintains
 *  a reference to each, and unrefs them upon destruction.
 */
class Pipeline {
public:
    Pipeline();
    ~Pipeline();

    void add(Stage* stage);
    void remove(Stage* stage);
private:
    std::set<Stage*> stages;
}; // class Pipeline

} // namespace Cesium

#endif //_cesium_pipeline_hpp_
